This invention relates to a method of operating a hypercube network of processing devices. In one embodiment, the invention provides a mechanism to optimise data transmission within the hypercube network by calculating a central location for processing of data.
In many computing environments multiple processing devices are connected together in a network. For example, highly complex software products may be split across multiple physical machines that are connected together. Similarly, tasks that are performed on the Internet are quite often carried out by multiple servers that are connected together as a network. A further example of such multiple processing devices is within individual machines such as supercomputers, which provide enormous processing power via the provision of multiple processing devices within the single machine.
When a number of processing devices are participating in a computation that requires data from multiple locations, the processing devices may need to pass a certain amount of data to a single point to be able to evaluate the computation. An example is a join query in a distributed database where data from two tables must be consolidated to a common node to evaluate the join query. The data may be present in differing volumes at different processing devices in the network.
Some computer networks, notably massively parallel supercomputers are configured in a hypercube topology. In this topology, each processing device has a small number of neighbors to which it is connected. To transmit data from one processing device to a known destination, it is passed between a succession of neighbors according to the logical addresses of the processing devices, which signify the position of the processing devices in the hypercube network, until the destination is reached.
When data is required to be transmitted from multiple processing devices to a single location for processing, if the quantity of data is high and/or the bandwidth between processing devices in the network is low, it is desirable to choose to transmit all the data to a specific processing device so that the total amount of data transmitted is minimised, thereby using the minimum network bandwidth in performing the computation. There is a requirement for a method and system for determining the location of the ideal processing device in such a network in this situation.